package th.co.exat.uap.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import th.co.exat.uap.model.Car;
import th.co.exat.uap.model.EditLog;
import th.co.exat.uap.model.Stations;
import th.co.exat.uap.model.UAPData;

public class CON001EditDisplay extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        RequestDispatcher rd;
        try {
            /** GET PARAMETER */
            String id = request.getParameter("id");
            String page = request.getParameter("p");
            String uapDate = request.getParameter("uapDate");
            String toUapDate = request.getParameter("toUapDate");
            String plateNo = new String(request.getParameter("plate").getBytes("iso-8859-1"), "utf-8");
            String exitStationName = new String(request.getParameter("station").getBytes("iso-8859-1"), "utf-8");
            String exitStation = request.getParameter("station2");
            String ustatus = request.getParameter("ustatus");
            /** END GET PARAMETER */
            
            /** GET DATA FROM CLASS UAPData */
            UAPData ud = UAPData.getById(id);
            /** END GET DATA FROM CLASS UAPData */

            /** DATA LIST */
            List<Stations> lineList = Stations.getLineList();
            List<Car> carTypeList = Car.getCarTypeList();
            List<Car> colorList = Car.getColorList();
            List<Car> brandList = Car.getBrandList();
            List<Car> provinceList = Car.getProvinceList();
            List<Stations> exitStationList = Stations.getExitStationList(ud.getLineId());
            List<Stations> enterStationList = Stations.getEnterStationList(ud.getUapExitStation());
            List<EditLog> editLogList = EditLog.getDataList("UAP001",id);
            /** End Data List */

            /** CHECK RECORD CAN EDIT */
            String elementR = "";
            String elementN = "";
            if(ud.getStatus().equals("R") || ud.getStatus().equals("D")) {
                elementR = "class='require' ";
            } else {
                elementR = "class='lock' disabled='disabled' ";
                elementN = "class='lock' disabled='disabled' ";
            }
            /** END CHECK RECORD CAN EDIT */

            /** SET ATTRIBUTE */
            request.setAttribute("lineList", lineList);
            request.setAttribute("exitStationList", exitStationList);
            request.setAttribute("enterStationList", enterStationList);
            request.setAttribute("carTypeList", carTypeList);
            request.setAttribute("colorList", colorList);
            request.setAttribute("brandList", brandList);
            request.setAttribute("provinceList", provinceList);
            request.setAttribute("data", ud);
            request.setAttribute("p", page);
            request.setAttribute("fUapDate", uapDate);
            request.setAttribute("fToUapDate", toUapDate);
            request.setAttribute("fPlate", plateNo);
            request.setAttribute("fStation2", exitStation);
            request.setAttribute("fStation", exitStationName);
            request.setAttribute("fUstatus", ustatus);
            request.setAttribute("elementR", elementR);
            request.setAttribute("elementN", elementN);
            request.setAttribute("editLogList", editLogList);
            /** END SET ATTRIBUTE */
            rd = request.getRequestDispatcher("con001edit.jsp");
            
            rd.forward(request, response);
        } catch (Exception ex) {
            throw new ServletException(ex);
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
